package com.yl.chainStore.services

import com.yl.chainStore.common.enums.TypeEnum
import com.yl.chainStore.entity.system.SysNumGenerator
import com.yl.chainStore.entity.system.SysNumGeneratorPrefixSetting
import com.yl.common.control.ResponseBody
import java.util.*

/**
 * 号码生成管理
 */
interface ISysNumGeneratorService {

	/**
	 * 创建一个新的号码（每天从1开始）
	 */
	fun getNewNum(companyId:Long,type:TypeEnum,subCompanyId:Long?):SysNumGenerator

	/**
	 * 创建一个付款记录号码（创建并直接使用）
	 */
	fun createPayLogNum(companyId:Long,type:TypeEnum,subCompanyId:Long?):SysNumGenerator

	/**
	 * 可传入日期
	 */
	fun createPayLogNumByDay(companyId: Long, type: TypeEnum, subCompanyId: Long?,day:Date): SysNumGenerator

	/**
	 * 号码是否被使用
	 */
	fun getSysNumIsUse(companyId:Long,type:TypeEnum,subCompanyId:Long?,numShow:String):Boolean

	/**
	 * 使用号码
	 */
	fun useSysNum(companyId:Long,type:TypeEnum,subCompanyId:Long?,numShow:String):ResponseBody


	/**
	 * 保存前缀
	 */
	fun setNumSetting(setting: SysNumGeneratorPrefixSetting):ResponseBody

	/**
	 * 获取前缀
	 */
	fun getNumPrefixSetting(companyId:Long,type:TypeEnum,subCompanyId:Long?): SysNumGeneratorPrefixSetting?
}
